This invention relates to mobile feature phones, and more particularly to inter-processor communications within a feature phone using an Ethernet-emulating driver and TCP/IP.
Cellular or mobile phones have gained widespread acceptance. Improvements in capabilities and features have been made as newer generations of mobile phones and infrastructure are introduced. Third and fourth generation (3G and 4G) phones can access high-bandwidth cellular networks, enabling video, gaming, and other multimedia services.
While there may be various implementations of feature phones, a dual-processor implementation is sometimes used. FIG. 1 shows a feature phone with two processors. Feature phone 10 has advanced capabilities, and includes applications processor 20 to execute programs that implement some of these more advanced features, such as H.264 or MPEG-4 video encoding and decoding, camera support, and MP3 audio player support.
Radio-frequency RF circuit 22 includes one or more chips and transmits and receives radio signals over the antenna of phone 10. These signals are converted to digital form and communicated with base-band processor 24. Control of the transceiver and implementation of cellular communications protocols is handled by base-band processor 24.
Information such as phone numbers, call status, and menus are displayed to a phone user on display 12, which may be a liquid crystal display (LCD). Keypad 14 accepts user-inputted phone numbers and text, with keys for sending and ending a call in addition to numeric telephone keys. Control over keypad 14 and display 12 is handled by base-band processor 24.
Having a separate applications processor 20 can provide a more robust phone platform since base-band processor 24 does not have to been significantly altered for advanced features, which are executed on applications processor 20.
User data such as call logs, phone numbers, and user preferences are stored in memory 16. Memory 16 can be a static random-access memory (SRAM), flash, or other non-volatile memory. Memory 16 can be accessed by base-band processor 24 and/or by applications processor 20. Data can be shared when both processor have operating systems that can recognize file formats used by the other processor.
Some data must be transferred between base-band processor 24 and applications processor 20. For example, video or picture data may be received over the cell network by base-band processor 24 and transferred to applications processor 20 for further processing, or a digital camera image captured by applications processor 20 may be sent to base-band processor 24 for transmission over the cell network.
The interface between applications processor 20 and base-band processor 24 may be difficult to use. For examples, special software drivers may need to be written for execution on both applications processor 20 and base-band processor 24 for transferring various types of data. Lower-level software or operating system modules may need to be modified. Such changes require extensive compatibility testing to ensure that the phones do not fail in the field. Developing a protocol as versatile and stable as TCP/IP protocol is difficult.
Networks such as Transport-Control-Protocol/Internet Protocol (TCP/IP) and Ethernet are used by larger computing platforms for data transfer. However, the cell phone is so small that adding Ethernet hardware is problematic. FIG. 2 shows a concept of adding Ethernet to a feature phone. This is only a concept since the inventor is not aware of such a cell phone having an Ethernet chip.
High-level applications 64 execute on applications processor 20, and could send information over network 70 by sending information down a network stack. TCP layer 66 receives network requests from high-level user applications 64 and forms TCP packets. TCP headers, containing sequence and acknowledgement numbers, ports for the source (client application) and destination (server application) and a TCP checksum are generated and prepended to the packet.
IP layer 68 receives the TCP packets from TCP layer 66 and generates Internet Protocol (IP) addresses for the client machine and the server machine. Applications processor 20 could act as the client and base-band processor 24 as the server, or vice-versa. An IP header, containing the addresses and an IP checksum is generated and prepended. The TCP packet with the user-application data is contained within the IP packet.
IP packets from IP layer 68 are sent to data-link layer (DLL) 62. DLL 62 contains the low-level network-card software drivers, such as an Ethernet-card driver. DLL 62 writes and reads registers on a network card or Ethernet chip to send packets over the physical media of network 70.
Base-band processor 24 also connects to network 70 using data-link layer DLL 72. Packets are passed up the server's network stack to IP layer 78 and TCP layer 76 before the data is sent to high-level application 74. Application 74 executing on base-band processor 24 responds to the high-level request from high-level client application 64 executing on applications processor 20 by fetching the desired data and transmitting it back over network 70.
DLL 62, 72 and network 70 can be implemented as an Ethernet chip for applications processor 20 and another Ethernet chip for base-band processor 24. Network-card software drivers are loaded onto both applications processor 20 and base-band processor 24 and are called by IP layers 68, 78. Network 70 can include the physical network such as a twisted-pair cable. However, in a cell phone there is very little space to add 2 Ethernet chips, and to add a twisted-pair cable between the 2 Ethernet chips.
What is desired is a feature phone with a highly-compatible interface between the applications processor and base-band processor. An interface between processors in a feature phone is desired that uses existing standard software drivers as much as possible to reduce compatibility issues. An Ethernet interface that is called by a standard TCP/IP stack is desirable.